package com.tanhua.server.controller;

import com.tanhua.commons.utils.JwtUtils;
import com.tanhua.model.db.UserInfo;
import com.tanhua.server.service.UserService;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 保存用户信息
     *   请求连接：
     *      POST  /loginReginfo
     *   请求参数：
     *      body ： UserInfo
     *      header：Authorization
     *   返回值：
     *      ResponseEntity
     */
    @PostMapping("/loginReginfo")
    public ResponseEntity loginReginfo(@RequestBody UserInfo userInfo,
                                       @RequestHeader("Authorization") String token) {
        //解析
        Claims claims = JwtUtils.getClaims(token);
       //jwt为了节省存储的容量，自动的将long转化为Integer
        String strId = claims.get("id").toString();
        Long id = Long.valueOf(strId);
        //设置id
        userInfo.setId(id);
        userService.saveUserInfo(userInfo);
        return ResponseEntity.ok(null);
    }

    /**
     * 首次登录---补充头像
     * 请求连接：
     *    POST  /loginReginfo/head
     * 请求参数：
     *    文件 ： headPhoto
     *    header：Authorization
     * 返回值：
     *    ResponseEntity
     */
    @PostMapping("/loginReginfo/head")
    public ResponseEntity head( MultipartFile headPhoto,
            @RequestHeader("Authorization") String token) throws IOException {
        //解析
        Claims claims = JwtUtils.getClaims(token);
        //jwt为了节省存储的容量，自动的将long转化为Integer
        String strId = claims.get("id").toString();
        Long userId = Long.valueOf(strId);
        //调用service，更新
        userService.updateHead(userId,headPhoto);
        return ResponseEntity.ok(null);
    }
}
